<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">

		//全局变量
		/*var a = 1;
		function aaa() {
			a ++;
			alert(a);
		}
		aaa();		//2
		aaa();		//3
*/

		//局部变量
		/*function bbb() {
			var b = 1;
			b ++;
			alert(b);
		}
		bbb();		//2
		bbb();		//2			垃圾回收机制导致的
*/

		//闭包
/*		function ccc(){
			var c = 1;
			return function(){
				c ++;
				alert(c);
			}
		}
		var num = ccc();		//num就是return出来的内部函数
		num();					//2
		num();					//3			闭包的局部变量c不被垃圾回收机制所回收
		alert(c);				//报错		c是未定义，可见c是局部变量
*/

		// 上式可以利用函数表达式再改写,也称 模块化代码
		var num = (function (){
			var c = 1;
			return function (){
				c ++;
				alert(c);
			}
		})();
		num();		//2
		num();		//3
	</script>
</body>
</html>